﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.RedPacket.RedPacketType;
using BCDto.TMS.RedPacket.RedPacketType.RedPacketTypeRequest;
using System.Collections.Generic;

namespace BCService.TMS.RedPacket.RedPacketType
{
    public interface IRedPacketTypeService
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="requestDto">红包类型信息</param>
        /// <param name="admin">管理员信息</param>
        /// <returns></returns>
        RedPacketTypeDto Create(RedPacketTypeRequestDto requestDto, AdminDto admin);
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="isEnabled">是否启用</param>
        /// <returns></returns>
        IEnumerable<RedPacketTypeDto> GetList(bool? isEnabled);
        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="RedPacketTypeId">红包类型</param>
        /// <returns></returns>
        RedPacketTypeDto GetSingle(long RedPacketTypeId);
        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="isEnabled">是否启用</param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<RedPacketTypeDto> Query(bool? isEnabled, int pageIndex, int pageSize);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="redPacketTypeId">红包类型id</param>
        /// <param name="requestDto">红包类型信息</param>
        /// <param name="admin">管理员信息</param>
        /// <returns></returns>
        RedPacketTypeDto Update(long redPacketTypeId, RedPacketTypeRequestDto requestDto, AdminDto admin);

    }
}
